The invention concerns a method for decoding data that is encoded on a medium in a two-dimensional arrangement of code symbol marks wherein the two-dimensional arrangement comprises a data range within which the position of each code symbol mark is linkable to certain data, wherein the two-dimensional arrangement comprises orientation symbol marks that define the data range and wherein the two-dimensional arrangement of code symbol marks and orientation symbol marks is read by way of a code reader.
Using an arrangement of code symbol marks it is possible to store data on the surface of a medium so that they can be electronically recorded and decoded. A large number of code symbol marks, often called barcodes, and two-dimensional arrangements, also called matrix codes, are known.
The first barcodes were developed and described more than fifty years ago. In the meantime different embodiments of barcode and matrix codes have been standardized on a country-specific and/or international basis and are widely used for marking products or for identification purposes in general.
Matrix codes with a two-dimensional arrangement of code symbol marks that in most cases are comprised of dark or light squares or pixels make it possible to store large amounts of data on a small area: Using customary error correction processes it is possible to recognize unreadable or damaged areas of the matrix code and in many cases to determine the missing data.
There are matrix codes (EP 1 523 726 B1) in which the size of the individual code symbol marks is given such that when a matrix code area is read, each code symbol corresponds to approximately one pixel of the reading device used for reading the optical resolution and thus of the generated image file, to allow for simple and reliable decoding and processing of the matrix code. [sic] The size of the code symbol marks and thus the dimensions of the matrix code are defined and determined by the resolution of the code reader. A variation of the code symbol marks or the area covered by the matrix code is not possible or is relatively complicated.
Other methods for decoding matrix codes are known (EP 0 564 708 B1), in which the area designated for the arrangement of the code symbol marks is defined by indication lines in a horizontal as well as a vertical direction. Such indication lines define a rectangular area for the code symbol marks. By using suitable division marks along the indication lines it is possible to electronically determine a scaling of the matrix code, which then can be considered during decoding. If, however, the indication lines are partially or wholly damaged or unreadable, the area covered with code symbol marks cannot be reliably determined and read out error-free. The indication lines only cover a small area located at the edge of the matrix code. Frequent read errors or damage in these areas cannot be corrected with the customary error correction methods when indication lines are used so that even minor damage or small unreadable areas of the indication lines of the otherwise readable matrix code become completely unreadable.
It is desirable to provide a method for decoding data in a two-dimensional arrangement according to the type described in the introduction such that the area designated for code symbol marks preferably can be selected and defined randomly and error-free decoding is possible even if a partial area of the two-dimensional arrangement is unreadable or damaged.
According to an aspect of the invention the orientation symbol marks are disposed in several rows and several columns such that a grid of row centerlines and column centerlines is adjusted to the read orientation symbol marks by determining a step width for the rows and a step width for the columns and while the read code symbol marks then are assigned to one respective point of intersection of the adjusted grid, said point of intersection being linkable to a defined piece of data. Due to the freely definable arrangement of the orientation symbol marks the distances between individual code symbol marks as well as the dimensions of the two-dimensional arrangement of the area covered with code symbol marks can be defined almost at will. The corresponding area does not necessarily have to be rectangular.
The orientation symbol marks are used only for determining the geometric properties of the data range, in which the code symbol marks that are arranged there can be linked unambiguously to a defined piece of data.
If a sufficiently large number of orientation symbol marks are used, the data range can still be reliably determined and defined if some or even the majority of the orientation symbol marks are damaged, cannot be read, or are completely missing.
Partially unreadable code symbol marks or data that therefore is not captured can be reconstructed with the help of known error correction methods as well as redundant data storage and coding. Such methods and measures are sufficiently described and known in connection with already existing decoding methods especially for existing matrix codes.
Since the orientation symbol marks do not need to be linkable to a defined piece of data, the arrangement or the design of the orientation symbol marks can be selected almost at will and can also be used for other purposes that are not necessarily connected to the decoding of the code symbol marks and can be adjusted accordingly. For example, the orientation symbol marks can be designed and arranged so that they display a logo, an image or an esthetic graphic design that a viewer can recognize. Therefore it also is feasible for the greater part of the two-dimensional arrangement to be covered with orientation symbol marks and a correspondingly small amount of data to be coded or to be reliably coded in only a comparatively small data range or based on a small number of code symbol marks, which is sufficient for certain applications. Additional data can be transmitted to provide a graphic design using orientation symbol marks that offer a perceivable meaning for the human viewer.
According to one embodiment of the invention the grid is adjusted to the read orientation symbol marks by determining an angle between the row centerlines and column centerlines.
Due to the fact that the rows and columns of the orientation symbol marks can be arranged relative to each other at an angle, the two-dimensional arrangement of the symbol marks is not restricted to right-angle grids. This allows, for example, adjusting the data range to a non-rectangular area in the best possible manner so as to use the available area advantageously and to use it for storing or decoding large amounts of data. By defining an angle between the row and the column centerlines it is possible to make an unambiguous orientation of the two-dimensional arrangement of symbol marks possible automatically.
Preferably the step width of the rows is different from the step width of the columns so that the relative orientation of the two-dimensional arrangement of the data symbol marks is determined based on the ratio between the two step widths. If the two step widths are different, it is possible to define and take into consideration when reading the symbol marks that the distance between the individual symbol marks in horizontal direction is larger than the distance of the symbol marks in vertical direction. This means it is possible to reliably determine the relative orientation and thus the horizontal or vertical direction of the symbol marks independent of the direction of the individual symbol marks relative to the code reader.
The absolute orientation of the symbol marks, which allows for an unambiguous allocation of the read code symbol marks with the determined intersecting points of the adjusted grid and the linked data, can be defined by the arrangement of the orientation points in a non-mirror image arrangement, etc., for example.
According to an especially advantageous embodiment of the invention the two-dimensional arrangement comprises reference symbol marks that are used to detect and determine the data range. If multiple reference symbol marks are used, through the number and position of the reference symbol marks, the position as well as the size of the data range can be displayed and determined during decoding, based on the reference symbol marks. If the size of the data range is predefined, one single reference symbol mark can be sufficient, if the data range is suitably positioned, to reliably and unambiguously determine the position of the data range during decoding.
It is possible to define the data range and the orientation range within the two-dimensional arrangement in a manner that ensures that the two ranges do not overlap. In this case the differentiation of the symbol marks into code symbol marks and orientation symbol marks can be based solely on assignment to one of the two ranges so that it is possible to obtain uniform symbol marking for code symbol marks and orientation symbol marks. To be able to better use the available area, it also is feasible to define the two ranges so that they overlap or are identical and to distinguish the code symbol marks and the orientation symbol marks based on a different graphic design of the symbol marks. The distinct graphic design can deviate in shape, size or color, for example, or in random combinations of these characteristics. This makes it possible to distinguish and assign the data symbol marks and the orientation symbol marks in each case based on a characteristic and distinguishable graphic design.
It also is possible to provide that multiple orientation symbol marks be arranged in close vicinity to one another and basically be connected. For example, it is possible to provide that all orientation symbol marks be arranged at a distance of a few, for example, two or three, rows or columns, from an adjacent orientation symbol mark.
If, on the other hand, it is defined that code symbol marks must be arranged individually and at a large distance from all adjacent symbol marks, the amount of all orientation symbol marks can be determined based on the adjacent symbol marks without requiring a special identification of the orientation symbol marks or without defining an area for the arrangement of the orientation symbol marks. The amount and arrangement of the orientation symbol marks therefore are freely selectable for the generation of the two-dimensional arrangement of symbol marks and can be almost randomly defined, so that a dynamic adjustment of the symbol marks to the data that are to be coded in individual cases or to the available area is possible.
According to an embodiment of the invention, the two-dimensional arrangement comprises data source symbol marks based on which a data source with defined data can be determined that is linkable with the points of intersection of the grid. The data source symbol marks can also be recognized and analyzed either based on their arrangement in a non-overlapping area within the two-dimensional arrangement or based on a distinct graphic design. For example, it is possible for defined data to be stored in data sources provided within companies, public institutions or countries, and to be accessed by the respective company, public institution or country during decoding of the code symbol marks.